package com.cskaoyan.javase._0datatype;

/**
 * 数据类型：数据类型，表示的是一组数据的集合，和基于该数据集合的一组合法操作。
 * 数据类型的分类：
 *      1.基本数据类型
 *          四类八种
 *          整型: 四个，Java中的整型都是有符号数。最高位是符号位，其余位是数值位
 *              byte: 8位,一个字节,[-128,127]
 *              short: 16位,两个字节,三万多
 *              int: 32位,四个字节,21亿多
 *              long: 64位,八个字节,900亿亿
 *
 *          浮点型: 两个,浮点型确实可以表示小数,但它不完全是小数
 *              浮点型数字的表示遵循IEEE754标准
 *              浮点数主要有两个特点:
 *                  1.浮点数有尾数的概念,说白了它有有效位数的限制,能够表示的有效数字是有限的.
 *                      比如有效位数是4位，12345就不能精确表示了
 *                  2.浮点数有阶码的概念，说白了它就是有指数的概念。所以浮点数能够表示非常大的数，和非常小的数
 *                  double 双精度 64位
 *                  float 单精度 32位
 *          字符型：Java中双引号引起来的就是字符串，单引号引起来的就是一个字符
 *              字符型就是用来存储字符的
 *              char类型虽然是存储字符，但本质上是存储字符的编码值
 *              编码值：唯一的一个正整数对应某个字符（编码值和字符的关系是映射）
 *              所以char类型本质上是存储正整数，它占用16位内存空间
 *              它的编码值取值范围[0,65535]
 *              字符型虽然不是数值类型，但它可以参与数值运算。用编码值参与运算
 *
 *          布尔型: boolean，用来表示真和假，它只有两种取值： true和false
 *
 *      2.引用数据类型
 *          在Java当中，除掉基本数据类型，都是引用数据类型
 *          比如String、System
 *
 * @since 11:52
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        float a = 0.1234567891234F;
        System.out.println(a);
        double b = 0.1234567891234;
        System.out.println(b);

        // 思考: float的0.1和double的0.1是一个数字吗?
        float a1 = 0.1F;
        double a2 = 0.1;
        System.out.println(a1 == a2);

        char c = 'a';
        char c2 = 97;
        System.out.println(c + 1);
        System.out.println(c2);
    }
}
